using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace ProjectSurvivor
{
    //unity中的一个特性，在Unity编辑器中创建自定义的 ScriptableObject 资源
    [CreateAssetMenu]
    public class LevelConfig : ScriptableObject
    {
            //序列化，在编辑器中显示，一种特性，控制变量的序列化和在Inspector面板中的显示
            //静态变量，属性，常量不能序列化，只读变量可以序列化
        [SerializeField]
        public List<EnemyWaveGroup>EnemyWaveGroups=new List<EnemyWaveGroup>();   
    }
    //C# 中的一个特性（Attribute），用于标记类、结构体或枚举可以被序列化。
    [Serializable]  
    public class EnemyWaveGroup//敌人波次群
    {
        public string Name;//名称
        //Unity 中的一个特性（Attribute），用于在 Inspector 面板中创建一个多行文本输入区域。
        [TextArea]public string Description=string.Empty;//描述
        [SerializeField]
        public List<EnemyWave>Waves=new List<EnemyWave>();//敌人波次
    }
    [Serializable]
	public class EnemyWave
	{
        public string Name;//名称
        public bool Active=true;//是否激活
		public float GenerateDuration = 1;//产生间隔
		public GameObject EnemyPrefab;//敌人预制体
		public int Seconds = 10;//10秒
        public float HPScale=1.0f;//血量缩放
        public float SpeedScale=1.0f;//速度缩放
	}

}

